---
title: Roller
slug: roller
---

import Overview from "/snippets/overview.mdx"
import PreBuiltTooling from "/snippets/generated/roller/PreBuiltTooling.mdx"
import PreBuiltUseCases from "/snippets/generated/roller/PreBuiltUseCases.mdx"

<Overview />
<PreBuiltTooling />
<PreBuiltUseCases />

<Tip>
  Roller uses the <strong>OAuth 2.0 Client Credentials</strong> flow via <strong>Nango Connect UI</strong> (no end‑user login).
</Tip>

# Roller API

This page documents how to connect to **Roller** using **Nango Connect UI** with the **OAuth 2.0 Client Credentials** grant.

> **Why this page?** Roller is a machine‑to‑machine integration (no end‑user login). Following the Connect UI pattern keeps it consistent with other CC integrations.


## Setup guide

1. **Create API credentials in Roller**
   - Obtain a **Client ID** and **Client Secret** for your Roller account (these may be scoped per venue/account depending on your setup).

2. **Create a Connect Session on your backend**
   - Your server should create a short‑lived **Connect Session** and return its token to the frontend.
   - Use your preferred backend language; follow the standard Connect Session flow used by other CC integrations.

3. **Launch Connect UI in your frontend**
   - Instantiate the Nango Frontend SDK with the session token and open the UI. The user will select **Roller** and enter **Client ID / Client Secret**.

```js
import Nango from '@nangohq/frontend';

// 1) Fetch a session token from your backend
const connectSessionToken = await fetch('/api/connect-session').then(r => r.text());

// 2) Open Connect UI
const nango = new Nango({ connectSessionToken });
await nango.openConnectUI({ sessionToken: connectSessionToken });
// The Connect UI handles collecting Client ID/Secret and creating the connection
```

4. **Use the connection in your backend**
   - Call Roller endpoints through your backend using Nango’s Proxy. Re‑use the connection you created in step 3.

---

## Useful links

- **Auth0 (Client Credentials) — example**: https://nango.dev/docs/integrations/all/auth0-cc
- **Frontend SDK (Connect UI API)**: https://nango.dev/docs/reference/sdks/frontend
- **Quickstart: Embed in your app (connect session token)**: https://nango.dev/docs/getting-started/quickstart/embed-in-your-app
- **Authorize in your app (default UI)**: https://nango.dev/docs/guides/api-authorization/authorize-in-your-app-default-ui
- **Proxy requests** (server-side calls through Nango): https://nango.dev/docs/guides/proxy-requests

---

## API gotchas

- **Client Credentials (no end‑user login):** there is no consent screen; the UI only collects **Client ID/Secret**.
- **Credential scope:** if your Roller credentials are scoped (e.g., per venue), create separate connections per scope.
- **Timestamps:** many APIs return timestamps in **UTC**; format for your users’ locale/timezone in the client.

---

## Troubleshooting

- **401/403 when calling Roller:** double‑check the Client ID/Secret entered during Connect UI and that you’re using the intended connection ID.
- **Multiple accounts/instances:** create one connection per account/instance so credentials don’t conflict.

---

## Going further

- Use metadata on the connection (or your own mapping) to track which venue/tenant a given connection refers to.
- Add prefill values to Connect UI if you already know the Client ID (leaving only the secret for the user to paste).
